<?php
// +----------------------------------------------------------------------
// | RXThinkCMF敏捷开发框架 [ 赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | 版权所有 2018~2023 南京RXThinkCMF研发中心
// +----------------------------------------------------------------------
// | Licensed LGPL-3.0 RXThinkCMF并不是自由软件，未经许可禁止去掉相关版权
// +----------------------------------------------------------------------
// | 官方网站: https://www.rxthink.cn
// +----------------------------------------------------------------------
// | Author: @牧羊人 团队荣誉出品
// +----------------------------------------------------------------------
// | 版权和免责声明:
// | 本团队对该软件框架产品拥有知识产权（包括但不限于商标权、专利权、著作权、商业秘密等）
// | 均受到相关法律法规的保护，任何个人、组织和单位不得在未经本团队书面授权的情况下对所授权
// | 软件框架产品本身申请相关的知识产权，禁止用于任何违法、侵害他人合法权益等恶意的行为，禁
// | 止用于任何违反我国法律法规的一切项目研发，任何个人、组织和单位用于项目研发而产生的任何
// | 意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、
// | 附带或衍生的损失等)，本团队不承担任何法律责任，本软件框架禁止任何单位和个人、组织用于
// | 任何违法、侵害他人合法利益等恶意的行为，如有发现违规、违法的犯罪行为，本团队将无条件配
// | 合公安机关调查取证同时保留一切以法律手段起诉的权利，本软件框架只能用于公司和个人内部的
// | 法律所允许的合法合规的软件产品研发，详细声明内容请阅读《框架免责声明》附件；
// +----------------------------------------------------------------------

namespace Admin\Controller;

use Admin\Model\LevelModel;
use Admin\Service\LevelService;

/**
 * 职级管理-控制器
 * @author 牧羊人
 * @since 2021/1/17
 * Class LevelController
 * @package Admin\Controller
 */
class LevelController extends BaseController
{
    /**
     * 初始化
     * @author 牧羊人
     * @since 2021/1/17
     */
    protected function _initialize()
    {
        parent::_initialize(); // TODO: Change the autogenerated stub
        $this->model = new LevelModel();
        $this->service = new LevelService();
    }

    /**
     * 导入Excel
     * @return array
     * @throws \PHPExcel_Exception
     * @throws \PHPExcel_Reader_Exception
     * @since 2022/2/11
     * @author 牧羊人
     */
    public function btnImport()
    {
        $error = "";
        // 上传文件(非图片)
        $result = uploadFile('file', $error);
        if (!$result) {
            return message($error, false);
        }
        // 返回的是数组，取第一个
        $data = import_excel(ATTACHMENT_PATH . $result[0]['filePath']);
        $totalNum = 0;
        if (!empty($data) && is_array($data)) {
            foreach ($data as $key => $val) {
                if ($key == 1) {
                    continue;
                }
                $item = [];
                $item['name'] = $val[0];
                $item['status'] = $val[1] == "正常" ? 1 : 2;
                $item['sort'] = $val[2];
                $levelModel = new LevelModel();
                $row = $levelModel->edit($item);
                if ($row) {
                    $totalNum++;
                }
            }
        }
        $this->ajaxReturn(message("本次共导入{$totalNum}条数据"));
    }

    /**
     * 导出Excel
     * @author 牧羊人
     * @since 2022/2/11
     */
    public function btnExport()
    {
        // 参数
        $param = I("request.");
        // 查询条件
        $where = [];
        // 职级名称
        $name = getter($param, "name");
        if ($name) {
            $where['name'] = array('like', "%{$name}%");
        }
        $where['mark'] = 1;
        // 获取导出的数据源
        $result = $this->model->where($where)->select();

        // 数据源重组
        $list = [];
        $list[] = ["职级ID", "职级名称", "职级状态", "职级排序"];
        foreach ($result as $val) {
            $list[] = [$val["id"], $val["name"], ($val["status"] == "1" ? "在用" : "停用"), $val["sort"]];
        }
        return export_excel($list, "demo.xls");
    }

}